package com.sokobanboxpro.game.managers;

import com.sokobanboxpro.game.gameplay.Game;
import org.newdawn.slick.GameContainer;

/**
 * Управляет приложением в состояние GAME. т.е. когда приложение переходит в
 * сотояние GAME
 *
 * @author Esr
 */
public class ActionGameManager {

		/**
		 * Игра, одно из состояний приложения.
		 */
		public final static Game game = new Game();

		/**
		 * Создание.
		 *
		 * @throws Exception
		 */
		public static void init() throws Exception {
				LevelManager.loadLevelFromFile("/resource/levels.lsbp");
				game.init();
				game.changeLevel(0);


		}

		/**
		 * Вызывается при обновление.
		 *
		 * @param gc
		 * @param delta Время прошедшее с предыдушего обновления
		 */
		public static void update(GameContainer gc, int delta) {
				game.getInterface().update(gc, delta);
				game.getGameplay().update(gc, delta);
		}

		/**
		 * Нажатие мыши или касание экрана.
		 *
		 * @param x Координата x
		 * @param y Координата y
		 */
		public static void mousePressed(int x, int y) throws Exception {

				game.mousePressed(x, y);

		}

		/**
		 * Перемешение мыши или пальца.
		 *
		 * @param oldx Начальная координата x
		 * @param oldy Начальная координата y
		 * @param newx Новая координата x
		 * @param newy Новая координата y
		 */
		public static void mouseDragged(int oldx, int oldy, int newx, int newy) {
		}

		/**
		 * Вызывается, когда произашла смена состояния приложения.
		 */
		public static void changeState() {
		}

}
